import java.io.IOException;
import java.util.Date;
import java.util.Map;

/*
  业务类:
    调用数据持久层 组装业务
 */
public class Business {

    // 在当前业务类中，包含一个数据持久层引用
    private DataDao dataDao;


    public Business(DataDao dataDao) {
        this.dataDao = dataDao;
    }


    /*
     添加功能
     */
    public void  addCustomer( String id,String name,Date birthday,char gender,Date registTime) throws IOException {
        //判断客户是否存在
        boolean b = dataDao.exitCustomerById(id);
        if(b){
            //存在输出客户已存在
            System.out.println("添加的客户已存在");
        }else{
            //新建新的顾客，并将信息赋值
            Customer customer = new Customer();
            customer.setId(id);
            customer.setName(name);
            customer.setBirthday(birthday);
            customer.setGender(gender);
            customer.setRegistTime(registTime);
            //将顾客添加到数据持久层
            dataDao.addCustomer(customer);
            dataDao.update();
            System.out.println("添加成功！");
        }

    }

    /*
     删除功能
     */
    public void  deleteCustomer(String id) throws IOException {
        //判断客户是否存在
        boolean b = dataDao.exitCustomerById(id);
        if(b){
            //存在则删除
            dataDao.deleteCustomerById(id);
            dataDao.update();
            System.out.println("删除成功！");
        }else {
            System.out.println("不存在该客户，无法删除");
        }
    }
    /*
   批量删除
    */
    public void batchDelete(String[] ids) throws IOException {
        for (String i:ids) {
            //判断客户是否存在
            boolean b = dataDao.exitCustomerById(i);
            if(b){
                //存在则删除
                dataDao.deleteCustomerById(i);
                dataDao.update();
                System.out.println("客户编号为"+i+"的客户删除成功！");
            }else {
                System.out.println("不存在客户编号为"+i+"的客户,无法删除");
            }
        }
    }

    /*
      查看单个客户功能
     */
    public Customer  checkCustomer(String id){
        //判断客户是否存在
        boolean b = dataDao.exitCustomerById(id);
        if(b){
            //存在则跟据id找到对象并返回
            return dataDao.obtainList().get(id);
        }return null;
    }
    /*
     修改功能
     */
    public void  modifyCustomer(String id,String name,Date birthday,char gender) throws IOException {
        //判断客户是否存在
        boolean b = dataDao.exitCustomerById(id);
        if(b){
            //存在则新建一个顾客对象存储信息
            Customer customer = new Customer();
            customer.setId(id);
            customer.setName(name);
            customer.setBirthday(birthday);
            customer.setGender(gender);
            dataDao.updateCustomer(customer);
            dataDao.update();
            System.out.println("修改成功！");
        } else {
            System.out.println("不存在该客户，无法修改");
        }

    }
    /*
      查看列表功能
     */
    public Map<String,Customer> queryCustomers(){

        return dataDao.obtainList();
    }



}
